Addresses #2286: when subcommand used execute_main_without_stdin and
provided --version flag, cargo intercepted it and printed it's own
version.
pub struct Flags {
flag_list: bool,
flag_verbose: bool,
+ flag_version: bool,
flag_quiet: bool,
flag_color: Option<String>,
arg_command: String,
init_git_transports(config);
+ if flags.flag_version {
+ println!("{}", cargo::version());
+ return Ok(None)
+ }
+
if flags.flag_list {
println!("Installed Commands:");
for command in list_commands(config) {
let docopt = Docopt::new(usage).unwrap()
.options_first(options_first)
.argv(args.iter().map(|s| &s[..]))
- .help(true)
- .version(Some(version()));
+ .help(true);
docopt.decode().map_err(|e| {
let code = if e.fatal() {1} else {0};
CliError::from_error(human(e.to_string()), code)